package com.wiselink.naver.productcatalog.request;

import com.wiselink.naver.productcatalog.request.enums.ChannelProductDisplayStatusType;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotNull;

/**
 * 智慧门店渠道产品信息结构
 * 该结构是表示商品信息中与智能商店渠道商品属性对应的商品数据的结构。
 * <p>
 * 此结构用于 API 调用的请求/响应。
 * 该结构的一个对象代表一种产品的智能商店渠道产品信息。
 * 智能商店渠道每个产品单元的产品信息仅包含在单一结构中，但作为分层结构中的姊妹实体，可以与原有产品结构或购物橱窗渠道产品结构一起使用。
 * 下面的 API 中使用了该结构。
 * 产品注册、渠道产品查询、渠道产品修改、原产品查询、原产品修改等
 */
@Getter
@Setter
@ToString(callSuper = true)
public class SmartstoreChannelProduct {
    /**
     * 渠道商品专用商品名
     * <p>如使用渠道商品专用名称，请填写。 未输入时适用原商品名。</p>
     * (채널 상품 전용 상품명)
     * 채널 상품 전용 상품명을 사용하는 경우 입력합니다. 미입력 시 원상품명으로 적용됩니다.
     */
    private String channelProductName;
    /**
     * 内容帖子序列号
     * <p>公告 ，通告 ，公告事项 。</p>
     * integer <int64> (콘텐츠 게시글 일련번호)
     * 공지사항
     */
    private Long bbsSeq;
    /**
     * 是否为同意接受通知的会员专用商品
     * <p>未输入时保存为false。</p>
     * (알림받기 동의 회원 전용 상품 여부)
     * 미입력 시 false로 저장됩니다.
     */
    private Boolean storeKeepExclusiveProduct;
    /**
     * NAVER购物登记与否
     * <p>如果不是NAVER购物广告商，则保存为false。</p>
     * 네이버 쇼핑 등록 여부
     * 네이버 쇼핑 광고주가 아닌 경우에는 false로 저장됩니다.
     */
    @NotNull(message = "NAVER购物登记与否不能为空")
    private Boolean naverShoppingRegistration;
    /**
     * 展示状态代码（智能商店频道专用）
     * <p>只能输入ON,SUSPENSION</p>
     * 전시 상태 코드(스마트스토어 채널 전용)
     * ON, SUSPENSION만 입력 가능합니다
     */
    @NotNull(message = "展示状态代码不能为空")
    private ChannelProductDisplayStatusType channelProductDisplayStatusType;
}
